/*
 * @Author: 13177709051 3506463075@qq.com
 * @Date: 2024-10-22 19:02:20
 * @LastEditors: 13177709051 3506463075@qq.com
 * @LastEditTime: 2024-10-22 21:09:03
 * @FilePath: /linux19/text.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// #include <iostream>
// #include <sys/types.h>
// #include <sys/stat.h>

// int main(int argc, char *argv[])
// {
//     mkfifo("p2", 0644);
//     return 0;
// }

// mkfifo("p2", 0644);: 这是创建命名管道的关键行。mkfifo 函数的两个参数如下：

// "p2": 这是将要创建的命名管道的名称。可以根据需要更改为其他名称。这个管道将会在当前工作目录下创建一个名为 p2 的文件。
// 0644: 这是管道的权限位，使用八进制表示。权限位控制谁可以读取和写入该管道。在这个例子中，权限设置为：
// 用户（文件所有者）可以读和写（6）
// 组用户可以读（4）
// 其他用户可以读（4）
// 因此，0644 权限意味着：

// 拥有者具有读（r）和写（w）权限。
// 同组用户和其他用户具有读（r）权限，但没有写（w）权限。

// struct shmid_ds
// {
//     struct ipc_perm shm_perm;    /* operation perms */
//     int shm_segsz;               /* size of segment (bytes) */
//     __kernel_time_t shm_atime;   /* last attach time */
//     __kernel_time_t shm_dtime;   /* last detach time */
//     __kernel_time_t shm_ctime;   /* last change time */
//     __kernel_ipc_pid_t shm_cpid; /* pid of creator */
//     __kernel_ipc_pid_t shm_lpid; /* pid of last operator */
//     unsigned short shm_nattch;   /* no. of current attaches */
//     unsigned short shm_unused;   /* compatibility */
//     void *shm_unused2;           /* ditto - used by DIPC */
//     void *shm_unused3;           /* unused */
// };


// 互斥: 使用信号量可以确保同一时刻只有一个进程访问共享资源，防止数据竞争。

// 同步: 信号量可用于控制多个进程的执行顺序。例如，一个进程可以在资源可用时被唤醒，从而继续执行。